﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CompilationFactures.Enums;

namespace CompilationFactures.Objects
{
    public class Article
    {
        string item;
        int quantite;
        decimal prix;
        EnumTaxes taxe;

        public Article(string item, decimal prix, int quantite, EnumTaxes taxe)
        {
            this.Item = item;
            this.Prix = prix;
            this.Quantite = quantite;
            this.Taxe = taxe;
        }

        public Article(Article art)
        {
            this.Item = art.Item;

            this.Prix = art.Prix;
            this.Quantite = art.Quantite;
            this.Taxe = art.Taxe;
        }

        private Article(string _item, int _quantite, decimal _prix, EnumTaxes _taxe)
        {
            item = _item;
            quantite = _quantite;
            prix = _prix;
            taxe = _taxe;
        }
    
        public string Item
        {
            get
            {
                return item;
            }
            set
            {
                item = value;
            }
        }

        public int Quantite
        {
            get
            {
                return quantite;
            }
            set
            {
                quantite = value;
            }
        }

        public decimal Prix
        {
            get
            {
                return prix;
            }
            set
            {
                prix = value;
            }
        }

        public Enums.EnumTaxes Taxe
        {
            get
            {
                return taxe;
            }
            set
            {
                taxe = value;
            }
        }

        public decimal SousTotal
        {
            get
            {
                return prix * quantite;
            }
        }

        public decimal TPS
        {
            get
            {
                return (taxe == EnumTaxes.F || taxe == EnumTaxes.FP ? SousTotal * ParametresStatiques.TAUXTPS : 0);
            }
        }

        public decimal TVQ
        {
            get
            {
                return (taxe == EnumTaxes.P || taxe == EnumTaxes.FP ? SousTotal * ParametresStatiques.TAUXTVQ : 0);
            }
        }

        public decimal Total
        {
            get
            {
                return SousTotal + TPS + TVQ;
            }
        }
    }
}
